#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//int diff_bit(int m, int n) {
//	int a = 0;
//	int count = 0;
//	while (a < 32) {
//	
//		if (((m >> a )& 1) != ((n >> a) & 1))
//			count++;
//		a++;
//
//	}
//	return count;
//}
//int diff_bit(int m, int n) {
//	int a = m ^ n;
//	int count = 0;
//	for (int i = 0; i < 32; i++) {
//		if (a >> i & 1 == 1)
//			count++;
//	}
//	return count;
//}
//int main() {
//	int m = 0;
//	int n = 0;
//	scanf("%d %d", &m, &n);
//	int ret=diff_bit(m, n);
//	printf("%d", ret);
//
//	return 0;
//}

//int main() {
//	int a = 0;
//	scanf("%d", &a);
//	for (int i = 31; i > 0; i-=2) {
//		printf("%d ", a >> i & 1);
//	}
//	printf("\n");
//	for (int j = 30; j >= 0; j -= 2) {
//		printf("%d ", a >> j & 1);
//	}
//	return 0;
//}
//int  print_one(int n) {
//	int count = 0;
//	//for (int i = 0; i < 32; i++) {
//	//	if (n >> i & 1 == 1)
//	//		count++;
//	//}
//	/*int i = 0;
//	while (i < 32) {
//
//	}*/
//	if (n & 1 == 1)
//		count++;
//	for (int i = 1; i < 32; i++) {
//		n >>= 1;
//		if (n & 1 == 1)
//			count++;
//	}
//	return count;
//}
int print_one(int n) {
	int count = 0;
	while (n) {
		/*if (n & (n - 1) == (n - 1))
			count++;
		n -= 1;*/
		n = n & (n - 1);
		count++;
	}
	return count;
}
int main() {
	int a = 0;
	scanf("%d", &a);
	int ret=print_one(a);
	printf("%d ", ret);
	return 0;
}